#include <iostream>
#include <list>
#include <unordered_map>
#include <set>
using namespace std;

struct SocialNode {

	int nodeVal; 
	float x, y;
	unordered_map<int, float> socialOutEdge; 
	unordered_set<int> canInfulence; 
	unordered_set<int> beInfluence; 
	int binf = 0; 
	int pre_community_label;
	int cur_community_label;

	SocialNode() {}

	SocialNode(int val) {
		nodeVal = val;
	}

	SocialNode(int val, float x, float y) {
		this->nodeVal = val;
		this->x = x;
		this->y = y;
	}

	void addEdge(int neighbourNodeVal, float newPr) {
		socialOutEdge.emplace(unordered_map<int, float>::value_type(neighbourNodeVal, newPr));
	}

	void print_toString() {
		unordered_map<int, float>::iterator  iter;
		for (iter = socialOutEdge.begin(); iter != socialOutEdge.end(); iter++) {
			cout << iter->first << "   " << iter->second << endl;
		}
	}

};